/*
 * Stats.h
 *
 *  Created on: Oct 8, 2011
 *  Created by: Devin Manno
 *  Updated by: Devin Manno, Nick James
 *	Last Update: Oct 13, 2011
 */

/* General stats class for a monster, player, or weapon. 
 */

#ifndef STATS_H_
#define STATS_H_
#include "base.h"

class Stats: public Base {
private:
	int agility;		// affects character's ability to dodge attacks
	int strength;		// warrior's highest weighted attack damage stat
	int intelligence;	// wizard's highest weighted attack damage stat
	int concentration;	// ranger's highest weighted attack damage stat
	int maxActionPoints;	// max action points
	int maxHitPoints;	// max hit points

public:
	Stats();
	virtual ~Stats();

	// getters
	int getAgility()const;
	int getStrength()const;
	int getIntelligence()const;
	int getConcentration()const;
	int getMaxActionPoints()const;
	int getMaxHitPoints()const;

	// setters
	void setAgility(int);
	void setStrength(int);
	void setIntelligence(int);
	void setConcentration(int);
	void setMaxHitPoints(int);
	void setMaxActionPoints(int);
	
	/* I dont think this class needs it inherit
	 * from base which means the following functions
	 * arent necessary
	 */
	// virtual function implementations
	std::string getObjectID();               // return the object ID
	std::string getDesc();                   // return the description
	void setObjectID();
	void setDesc();
};

#endif /* STATS_H_ */
